/* ZKBindLoad1Composer.java
Purpose:
Description:
History:
Aug 2, 2011 1:01:07 PM, Created by henrichen
Copyright (C) 2011 Potix Corporation. All Rights Reserved.
*/
package org.zkoss.zktest.bind.issue;
import org.zkoss.bind.Property;
import org.zkoss.bind.ValidationContext;
import org.zkoss.bind.Validator;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;
/**
* @author dennis
*
*/
public class B0004{
private int value1;
private String value2;
public int getValue1() {
return value1;
}
@NotifyChange
public void setValue1(int value1) {
this.value1 = value1;
}
public String getValue2() {
return value2;
}
@NotifyChange
public void setValue2(String value2) {
this.value2 = value2;
}
private String lastMessage1;
private String lastMessage2;
private String lastMessage3;
public String getLastMessage1() {
return lastMessage1;
}
public void setLastMessage1(String lastMessage1) {
this.lastMessage1 = lastMessage1;
}
public String getLastMessage2() {
return lastMessage2;
}
public void setLastMessage2(String lastMessage2) {
this.lastMessage2 = lastMessage2;
}
public String getLastMessage3() {
return lastMessage3;
}
public void setLastMessage3(String lastMessage3) {
this.lastMessage3 = lastMessage3;
}
@Command @NotifyChange("lastMessage3")
public void cmd1(){
setLastMessage3("execute command 1");
}
public Validator getValidator1(){
return new Validator(){
public void validate(ValidationContext ctx) {
if(!ctx.isValid()) return;
Property p = ctx.getProperty();
Object val = p.getValue();
if(val!=null && Integer.parseInt(val.toString())>10){
setLastMessage1(null);
}else{
ctx.setInvalid();
setLastMessage1("value 1 have to large than 10");
}
ctx.getBindContext().getBinder().notifyChange(B0004.this, "lastMessage1");
}
};
}
public Validator getValidator2(){
return new Validator(){
public void validate(ValidationContext ctx) {
if(!ctx.isValid()) return;
Property p = ctx.getProperty();
Object val = p.getValue();
try{
if(val!=null && Integer.parseInt(val.toString())>20){
setLastMessage2(null);
}else{
ctx.setInvalid();
setLastMessage2("value 2 have to large than 20");
}
}catch(java.lang.NumberFormatException x){
ctx.setInvalid();
setLastMessage2("value 2 is not valid " +x.getMessage());
}
ctx.getBindContext().getBinder().notifyChange(B0004.this, "lastMessage2");
}
};
}
public Validator getValidator3(){
return new Validator(){
public void validate(ValidationContext ctx) {
if(!ctx.isValid()) return;
Object val1 = ctx.getProperties().get("value1")[0].getValue();//ctx.getPropertyValue("value1");
Object val2 = ctx.getProperties().get("value2")[0].getValue();//ctx.getPropertyValue("value2");//null;
if(val2==null){ //val2 is deached
ctx.setInvalid();
setLastMessage2("value 2 is null");
}else if(Integer.parseInt(val1.toString())>=Integer.parseInt(val2.toString())){
ctx.setInvalid();
setLastMessage2("value 2 have to large than value 1");
}else{
setLastMessage2(null);
}
ctx.getBindContext().getBinder().notifyChange(B0004.this, "lastMessage2");
}
};
}
}